package 设计模式.结构型模式.桥梁模式_api_抽象_代理;

/**
 * @Author kirito
 * @Date 2024/1/22 10:43
 * @PackageName:设计模式.桥梁模式
 * @ClassName: Test01
 * @Description:
 * @Version 1.0
 *
 * 声明一个接口drawAPI，定义draw方法（桥梁）
 * 1.抽象类引入接口
 * 2.不同类根据自身需求实现接口drawAPI
 * 3.不同方法继承实现抽象方法
 *
 *桥梁模式是结构型设计模式，它解决的问题就是多维度多变化的类爆炸性问题，意思就是很多对象是多个维度去组合，
 * 我们不需要把这种组合的方式写成静态（继承的方式）的代码方式实现，而可以采用组合的方式去组合，
 * 当然还要结合抽象或则接口去交流，这样屏蔽具体的维度实现细节。总而言之，就是解决了多维度变化的问题。
 *
 *
 *好像没看到中台是否用了桥梁，但是api接口实现，然后proxy代理模式是有的，抽象方法聚合做桥梁好像没见到
 *
 */
public class Test01 {
    //最后，我们来看客户端演示：
    public static void main(String[] args) {
        Shape greenCircle = new Circle(10, new GreenPen());
        Shape redRectangle = new Rectangle(4, 8, new RedPen());
        greenCircle.draw();
        redRectangle.draw();
    }
}
